/**
 * 設定画面のクラスを定義する
 * Sencha共通のExt.form.FormPanelクラスから継承する
 */
jp.bbcs.rssclient.views.SettingsForm = Ext.extend(Ext.form.FormPanel, {
	// 縦スクロール
	scroll : 'vertical',

	// 標準サブミット無効
	standardSubmit : false,

	// ツールバーを定義
	dockedItems : new Ext.Toolbar({
		ui : 'light',
		title : '購読フィード',
		dock : 'top',
		items : [
		// 追加ボタン
		new Ext.Button({
			iconCls : 'add',
			iconMask : true,
			handler : function(handler, event) {
				Ext.Msg.prompt('', 'フィードのURLを入力して下さい', function(button, text) {
					if (button == 'ok') {
						if (text == '')
							alert('URLを入力して下さい!');
						else {
							Ext.dispatch({
								controller : jp.bbcs.rssclient.controllers.appController,
								action : 'addfeed',
								url : text
							});
						}
					}
				});
			}
		}), {
			xtype : 'spacer'
		},

		// 閉じるボタン
		new Ext.Button({
			text : '閉じる',
			handler : function(handler, event) {

				// 閉じるボタン押下時、ニュース一覧画面へ遷移（コントローラよりdispatch）
				Ext.dispatch({
					controller : jp.bbcs.rssclient.controllers.appController,
					action : 'list',
					animation : {
						type : 'slide',
						direction : 'down'
					}
				});
			}
		}) ]
	}),

	// 入力フォーム定義
	items : [],
	
	/**
	 * 格納する画面の定義など初期化処理を行う。
	 */
	initComponent: function() {
		this.feedStore = Ext.getStore('feedStore');
		this.feedStore.sync();
		var count = this.feedStore.getCount();
		for(var i=0; i < count; i++) {
			var group = this.feedStore.getAt(i).data;
			var feedGroupItem = {
				xtype: 'fieldset',
				title: group.title,
				defaults: {
					labelAlign: 'left',
					labelWidth: '60%'
				},
				items:[]
			};
			for(var j =0; j < group.feeds.length; j++) {
				var feed = group.feeds[j];
				feedGroupItem.items[j] = {
					xtype: 'checkboxfield',
					name: feed.id,
					label: feed.title,
					value: true,
					checked: feed.subscribed,
					orignalFeed: feed,
					listeners: {
						check: function(obj) {
							obj.orignalFeed.subscribed = true;
						},
						
						uncheck: function(obj) {
							obj.orignalFeed.subscribed = false;
						}
					}
				};
			}
			this.items[this.items.length]  = feedGroupItem;
		}

		jp.bbcs.rssclient.views.SettingsForm.superclass.initComponent.apply(this, arguments);
	}
});
